#include<iostream>
#include<vector>
#include<list>
#include<queue>

using namespace std;
#include"Stack.h"
#include"Queue.h"
#include"PriorityQueue.h"

void StackTest()
{
	//bin::stack<int, vector<int>> st1;
	bin::stack<int, list<int>> st1;
	st1.push(1);
	st1.push(2);
	st1.push(3);
	st1.push(4);

	while (!st1.empty())
	{
		cout << st1.top() << ' ';
		st1.pop();
	}
	cout << endl;
}

void QueueTest()
{ 
	//bin::queue<int> q;
	bin::queue<int, list<int>> q;

	q.push(1);
	q.push(2);
	q.push(3);
	q.push(4);

	while (!q.empty())
	{
		cout << q.front() << ' ';
		q.pop();
	}
	cout << endl;
}

void PriorityQueueTest()
{
	bin::priority_queue<int, vector<int>, bin::greater<int>> pq;
	pq.push(2);
	pq.push(1);
	pq.push(4);
	pq.push(3);

	while (!pq.empty())
	{
		cout << pq.top() << ' ';
		pq.pop();
	}
	cout << endl;
}

int main()
{
	//StackTest();
	//QueueTest();
	PriorityQueueTest();

	return 0;
}

//priority_queue<int> pq;